package cn.buk.api.shdl.dto;

import com.fasterxml.jackson.annotation.JsonAlias;

import java.util.List;

public class FlightInfo {

  /**
   * 航班编号 唯一编号，同一航班可能有多
   * 个编号，如同一航班日期不
   * 同，编号不同,不可为空
   */
  private int id;
  /**
   * 市场方航空公司
   */
  private String carrier;
  /**
   * 航班号，不含航司代码
   */
  private String flightNumber;
  /**
   * 承运方航空公司
   */
  private String operatingCarrier;
  private String operatingFlightNumber;
  private String departureAirport;
  private String departureTerminal;
  private String arrivalAirport;
  private String arrivalTerminal;
  private MyLocalDate departureDate;
  private MyLocalTime departureTime;
  private MyLocalDate arrivalDate;
  private MyLocalTime arrivalTime;

  /**
   * 航班是否变更
   */
  private boolean aircraftChange;
  /**
   * 技术经停信息
   */
  private List<String> intermediateAirports;
  /**
   * 机型信息
   */
  private List<AircraftInfo> aircraftTypes;
  private String serviceType;
  /**
   * 距离
   */
  private int distance;
  /**
   * 飞行时间：分钟
   */
  private int duration;
  private String displayCarrier;
  /**
   * 餐食信息
   */
  private String mealService;
  private boolean et;
  @JsonAlias("ASR")
  private boolean asr;
  /**
   * 经停点数量
   */
  private int stopQuantity;
  /**
   * 经停时间,单位为分钟
   */
  private List<Integer> groundTimes;

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public String getCarrier() {
    return carrier;
  }

  public void setCarrier(String carrier) {
    this.carrier = carrier;
  }

  public String getFlightNumber() {
    return flightNumber;
  }

  public void setFlightNumber(String flightNumber) {
    this.flightNumber = flightNumber;
  }

  public String getOperatingCarrier() {
    return operatingCarrier;
  }

  public void setOperatingCarrier(String operatingCarrier) {
    this.operatingCarrier = operatingCarrier;
  }

  public String getOperatingFlightNumber() {
    return operatingFlightNumber;
  }

  public void setOperatingFlightNumber(String operatingFlightNumber) {
    this.operatingFlightNumber = operatingFlightNumber;
  }

  public String getDepartureAirport() {
    return departureAirport;
  }

  public void setDepartureAirport(String departureAirport) {
    this.departureAirport = departureAirport;
  }

  public String getDepartureTerminal() {
    return departureTerminal;
  }

  public void setDepartureTerminal(String departureTerminal) {
    this.departureTerminal = departureTerminal;
  }

  public String getArrivalAirport() {
    return arrivalAirport;
  }

  public void setArrivalAirport(String arrivalAirport) {
    this.arrivalAirport = arrivalAirport;
  }

  public String getArrivalTerminal() {
    return arrivalTerminal;
  }

  public void setArrivalTerminal(String arrivalTerminal) {
    this.arrivalTerminal = arrivalTerminal;
  }

  public MyLocalDate getDepartureDate() {
    return departureDate;
  }

  public void setDepartureDate(MyLocalDate departureDate) {
    this.departureDate = departureDate;
  }

  public MyLocalTime getDepartureTime() {
    return departureTime;
  }

  public void setDepartureTime(MyLocalTime departureTime) {
    this.departureTime = departureTime;
  }

  public MyLocalDate getArrivalDate() {
    return arrivalDate;
  }

  public void setArrivalDate(MyLocalDate arrivalDate) {
    this.arrivalDate = arrivalDate;
  }

  public MyLocalTime getArrivalTime() {
    return arrivalTime;
  }

  public void setArrivalTime(MyLocalTime arrivalTime) {
    this.arrivalTime = arrivalTime;
  }

  public boolean isAircraftChange() {
    return aircraftChange;
  }

  public void setAircraftChange(boolean aircraftChange) {
    this.aircraftChange = aircraftChange;
  }

  public List<String> getIntermediateAirports() {
    return intermediateAirports;
  }

  public void setIntermediateAirports(List<String> intermediateAirports) {
    this.intermediateAirports = intermediateAirports;
  }

  public List<AircraftInfo> getAircraftTypes() {
    return aircraftTypes;
  }

  public void setAircraftTypes(List<AircraftInfo> aircraftTypes) {
    this.aircraftTypes = aircraftTypes;
  }

  public String getServiceType() {
    return serviceType;
  }

  public void setServiceType(String serviceType) {
    this.serviceType = serviceType;
  }

  public int getDistance() {
    return distance;
  }

  public void setDistance(int distance) {
    this.distance = distance;
  }

  public int getDuration() {
    return duration;
  }

  public void setDuration(int duration) {
    this.duration = duration;
  }

  public String getDisplayCarrier() {
    return displayCarrier;
  }

  public void setDisplayCarrier(String displayCarrier) {
    this.displayCarrier = displayCarrier;
  }

  public String getMealService() {
    return mealService;
  }

  public void setMealService(String mealService) {
    this.mealService = mealService;
  }

  public boolean isEt() {
    return et;
  }

  public void setEt(boolean et) {
    this.et = et;
  }

  public boolean isAsr() {
    return asr;
  }

  public void setAsr(boolean asr) {
    this.asr = asr;
  }

  public int getStopQuantity() {
    return stopQuantity;
  }

  public void setStopQuantity(int stopQuantity) {
    this.stopQuantity = stopQuantity;
  }

  public List<Integer> getGroundTimes() {
    return groundTimes;
  }

  public void setGroundTimes(List<Integer> groundTimes) {
    this.groundTimes = groundTimes;
  }

//  "id": 0,
//          "carrier": "HX ",
//          "flightNumber": "239 ",
//          "operatingCarrier": "HX ",
//          "operatingFlightNumber": "239 ",
//          "departureAirport": "SHA",
//          "departureTerminal": "T1",
//          "arrivalAirport": "HKG",
//          "arrivalTerminal": "1 ",

//
//          "departureDate": {
//    "year": 2020,
//            "day": 12,
//            "month": 4
//  },
//          "departureTime": {
//    "hour": 19,
//            "minutes": 15
//  },
//          "arrivalDate": {
//    "year": 2020,
//            "day": 12,
//            "month": 4
//  },
//          "arrivalTime": {
//    "hour": 21,
//            "minutes": 50
//  },
//          "aircraftChange": false,
//          "intermediateAirports": [],
//          "aircraftTypes": [
//  {
//    "aircraftTypeCode": "332",
//          "aircraftGroupCode": "330",
//          "category": "J"
//  }
//],
//        "serviceType": "J",
//        "distance": 773,
//        "duration": 155,
//        "displayCarrier": "   ",
//        "mealService": "C",
//        "et": true,
//        "ASR": true,
//        "stopQuantity": 0,
//        "groundTimes": []
}
